home *** CD-ROM | disk | FTP | other *** search
/ APDL Other Worlds / APDL Other Worlds Collection.iso / SF3000 / Extras / CBlibrary / ReadMe < prev   
Encoding:
Text File  |  2003-10-23  |  5.5 KB  |  130 lines

  1. +---------------------------------+
  2. |            CBLibrary            |
  3. |     (C) 2003 Chris Bazley       |
  4. |  Release 8 (23rd October 2003)  |
  5. +---------------------------------+
  6. N.B. This text is best viewed at a display width of 77 columns.
  7.  
  8. Preamble
  9. --------
  10.  
  11.   This is yet another C library for RISC OS. Actually, it is more like a
  12. personal collection of components that happen to be common to many of my
  13. applications. It has a large number of external dependencies, including most
  14. of the libraries supplied with the Acorn C/C++ package.
  15.  
  16.   I do not seriously expect many (any?) other programmers to use CBLibrary,
  17. but it has to be in the public domain in order that the programs that use it
  18. can meaningfully be released under the GNU General Public Licence.
  19.  
  20.   The most interesting component is probably 'Loader', which is fully
  21. documented elsewhere and for which an example client program is available.
  22.  
  23. The 'bool' issue
  24. ----------------
  25.  
  26.   As supplied, CBLibrary expects the type 'bool' to be a byte, since this is
  27. how it is implemented in Castle's C99 compiler. If you have an older
  28. compiler then it is likely that your standard C library's 'stdbool' header
  29. (if you have one) typedefs 'bool' as 'int'. If this is the case you then
  30. will have to change BOOL_8_BIT to {FALSE} in s.timer, and then rebuild the
  31. *entire* library. This is necessary because various components have
  32. pointers to type 'bool' in their functional interfaces.
  33.  
  34. Compiling the library
  35. ---------------------
  36.  
  37.   You should ensure that the Acorn C/C++ library directories clib, tboxlibs
  38. and flexlib are on your C$Path. Otherwise the compiler won't be able to find
  39. the required library headers.
  40.  
  41.   The supplied Makefile uses the default CC and ObjAsm options. For recent
  42. releases of the Acorn C/C++ Development Suite (from Castle Technology) this
  43. means 32-bit configuration for ObjAsm and APCS-32 (apcs 3/32bit/fpe3) for CC.
  44.  
  45.   To compile code to be linked with StubsG, you must add '-DOLD_SCL_STUBS
  46. -apcs 3/32/fpe2/swst/fp/fpr' to the CC command line. This removes any
  47. dependency on functions not provided by older versions of the shared C
  48. library & stubs. However, it is likely that the source code will still
  49. contain some C99 syntax (requiring modification for old compilers).
  50.  
  51. Licence and disclaimer
  52. ----------------------
  53.  
  54.   This library is free software; you can redistribute it and/or modify it
  55. under the terms of the GNU Lesser General Public License as published by the
  56. Free Software Foundation; either version 2.1 of the License, or (at your
  57. option) any later version.
  58.  
  59.   This library is distributed in the hope that it will be useful, but
  60. WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  61. FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
  62. for more details.
  63.  
  64.   You should have received a copy of the GNU Lesser General Public License
  65. along with this library; if not, write to the Free Software Foundation,
  66. Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  67.  
  68. Credits
  69. -------
  70.  
  71. Most of CBLibrary was written by Chris Bazley.
  72.  
  73. The 'FedCompMT' component contains a substantial amount of code by David
  74. O'Shea, who wrote a DeComp module for use with the Stunt Racer track
  75. designer.
  76.  
  77. The 'err' and 'msgtrans' components are derived from those supplied with Tony
  78. Houghton's tutorial application !FormText.
  79.  
  80. History
  81. -------
  82.  
  83. Release 4 (9th September 2003)
  84. - First stand-alone release under the L.G.P.L.
  85.  
  86. Release 5 (11th September 2003)
  87. - To make a listener accept all load requests regardless of drop location you
  88.   must now pass NULL_ObjectId rather than -1 to loader_register_listener().
  89.   This change breaks the F.I.D., but I felt it was necessary - sorry.
  90. - loader_buffer_file() now guarantees not to change the 'file_path' string
  91.   passed to it.
  92.  
  93. Release 6 (11th September 2003)
  94. - s.timer had been assuming that *timeup_flag pointed to a word value. This
  95.   was dangerous when linking with code generated by Castle's new compiler, so
  96.   it is now set up to access a byte value instead. Which version to
  97.   assemble can be configured by setting the variable BOOL_8_BIT.
  98. - Changed the names of the 'FednetCompM' and 'AbortFileOp' components to fit
  99.   within the 10 character name limit on old filing systems.
  100. - s.timer now assembles as either APCS-R or APCS-32 code, depending on the
  101.   value of ObjASM's built-in variable {CONFIG}.
  102.  
  103. Release 7 (13th September 2003)
  104. - Changed the names of various structures and types defined by h.SFformats.
  105. - The default state of c.err is now to record errors; renamed the 'err_rec'
  106.   header as 'err'.
  107. - o.ErrNotRec and o.FPCompOnly (which provide cut-down features of c.err and
  108.   c.FilePerc respectively) can be built separately. Since the linker scans
  109.   AOFs before libraries, programs can be linked with them and they will
  110.   override the objects in CBLib.
  111.  
  112. Release 8 (23rd October 2003)
  113. - Removed redundant (and misleading) 'NullPoll_suspend' header.
  114. - The 'NullPoll' and 'Loader' components no longer check the pointers
  115.   returned by event_get_mask() and event_set_mask(), which are always NULL!
  116. - Various 'NullPoll', 'NoBudge' and 'RoundRobin' functions that formerly
  117.   returned a pointer to a fancy error message now merely assert() valid
  118.   calling conditions (e.g. at least one client registered, for
  119.   nullpoll_deregister). This should simplify production code, where such
  120.   errors should not occur anyway.
  121. - You can now define the symbol OLD_SCL_STUBS to compile code for use with
  122.   StubsG rather than Castle's stubs for the new (C99 supporting) shared C
  123.   library.
  124.  
  125. Contact details
  126. ---------------
  127.  
  128. Chris Bazley (chrisbazley@bigfoot.com)
  129. WWW: http://www.bigfoot.com/~chrisbazley/
  130.